cc-pocket · design system 2.0 · fast start · v1

新建任务快速通道

The settled interaction spec, re-skinned onto the 2.0 tokens: search collapses to an icon, a single accent FAB owns starting something new, and 项目 and 智能体 become two visible chips in the sheet it opens instead of two invisible defaults. Every frame is the same live component at 402 × 874 — tap the FAB, tap a chip, pick a project, switch the agent. The full mode/model/native configuration sheet is untouched; this is the fast lane beside it.

live prototype
402 × 874 · dark · zh
form final
FAB + bottom sheet
rows untouched
list · sessions · chat
最终

The mobile form: FAB into a bottom sheet

Owner decision · the in-place entry row is gone and the list has that height back

Idle Projects is now only Projects: nav, machine state, list. The single accent circle at the bottom right is the whole new-task affordance, and it reads as one thing rather than as a row of chrome the eye has to parse — an icon-only + at 56 dp on the accent, with real elevation and a short scrim gradient beneath it so it stays legible over a scrolling row. Tapping it raises the sheet that was designed in the earlier round, unchanged: multiline field on top, accessory row below with 项目 and 智能体 on the left and 发送 on the right. The two creation-time decisions are still visible before a word is typed; they simply live in the surface that creation happens in, not on the surface that supervision happens on. Dismissal is a scrim tap or a swipe on the grabber, and the draft survives it — the sheet is a place you can leave and come back to, which is what makes covering the list acceptable here where it was not acceptable for a permanent bar.

What this changed
{{ s.axis }} {{ s.note }}
A–D

The mobile path

One component, four states. Idle → search → composing → picking.
{{ m.label }}
{{ m.note }}
E–F

Six agents, and the same two chips on the desktop

Unavailable backends stay visible. Popovers replace panels off the phone.
E · 智能体 picker · six backends
Identity dot plus name, single-select, checkmark on the current one. DeepSeek is dimmed and carries a quiet 不可用 — the backend a computer did not report is a fact worth showing, not a row worth hiding. Six rows at 56 pt fit without scrolling.
F · desktop empty state · 600 dp
The same accessory row, inline: 项目 chip, 智能体 chip, then the quiet 模式与模型沿用默认 hint that says out loud what the desktop composer used to keep to itself. The chip opens a popover anchored to itself rather than a panel that moves the page, because a pointer can afford to overlap. Send stays disabled until there is text, as on the phone.
H

Waiting for the directory list · #261

Presentation only — the fetch and the never-claim-ready rule are unchanged.
A · loading · full screen
B · skeleton → landed
{{ f.tag }} {{ f.note }}
C · motion spec
{{ m.k }} {{ m.v }}

Breathing, not shimmer. A gradient sweep is a second material moving across a flat surface, and at this density it would run over five mono path bars at once and read as texture. Alpha breathing on the same fills the 2.0 system already uses keeps the screen still: one infiniteRepeatable per row, nothing new to build.

Staggered by 90 ms. Five rows breathing in phase blink as one block, which looks like a broken screen rather than a pending one; a small offset reads as a list arriving. Rows mirror the real card anatomy — status dot, title bar, mono path bar, trailing affordance — at the real 64 dp height, so nothing jumps when content replaces them.

One voice, in the header. The state line already owns machine status, so it carries the whole wait — 正在读取 Panda 上的项目… replaces 连接中…, the in-list engineer narration is deleted outright, and 审阅 2 stays hidden until the list lands. The dot goes muted and breathes on the same 1.4 s clock as the rows.

Kept from the settled spec. Search collapses to an icon and clears its filter on the way out; the FAB hides while filtering. Chips carry a folder glyph with a mid-truncated name and an identity dot with an agent name, always visible, never implicit. Pickers highlight their chip and flip its chevron while open.

Consequence worth naming. Freeing the filter row leaves 树形 / 平铺 without a home, so it rides the first section label at 44 pt instead of taking a row of its own. Project rows, the session list and chat are untouched, and 打开任意文件夹 is gone from this screen — it is the pinned 浏览其他文件夹… at the foot of the project picker.

Open for the build. Whether the FAB should shrink or hide on scroll-down, and whether 最近使用 should list three or five. Both are cheap to change and neither affects the structure above.